package libx

import (
	"crypto/md5"
	"crypto/rand"
	"encoding/hex"
	"regexp"
)

func CheckUserName(username string) bool {
	return regexp.MustCompile(`^[a-zA-Z0-9._\-]{3,32}$`).MatchString(username)
}

func CheckEmail(email string) bool {
	return regexp.MustCompile(`^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$`).MatchString(email)
}

func CheckPhone(phone string) bool {
	return regexp.MustCompile(`^(\+?\d{1,3}[-\s]?)?( $?\d{2,3}$ ?[-\s]?)?\d{3,4}[-\s]?\d{3,4}[-\s]?\d{3,4}$`).MatchString(phone)
}

func GenKey() []byte {
	key := make([]byte, 32)
	// 使用 crypto/rand 库来生成一个安全的随机密钥
	rand.Read(key)
	return key
}

func MD5(str string) string {
	hash := md5.Sum([]byte(str))
	return hex.EncodeToString(hash[:])

}
